-
Notifications
You must be signed in to change notification settings - Fork 17.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
GCS_MAVLINK: Fix Deprecation of MISSION_REQUEST #28854
base: master
Are you sure you want to change the base?
GCS_MAVLINK: Fix Deprecation of MISSION_REQUEST #28854
Conversation
b86d074
to
dd04ec6
Compare
dd04ec6
to
1c43fae
Compare
We continue to request I deal with one which this PR would adversely affect (I'm nudging the author to update....). Which GCSs have you tested with these changes? |
Please add a link there that marks this PR as duplicate, so it is to be closed along with it.
I'm hunting some Mavlink issues with QGroundControl and ELRS 900M, very frustrating topic because ELRS 2G4 works perfectly and mLRS 900M also works perfectly. EDIT: |
Tested again after a git hard reset onto the change, and the internal error is gone. It was likely the check in line 371 being reverted on stashed changes. |
Requires ArduPilot/MAVProxy#1492 |
That particular GCS is not open-source.
Nice! I've fixed MAVProxy to work with it. We'll need to follow a process here so as to give people plenty of warning that things are going to break. It is well past time that we did follow some process to get this done. There are many GCSs and tools out there that would be adversely affected by this patch if we were to simply merge it. MAVProxy users are likely to update relatively frequently - but uGCS users perhaps not. We may need to carry an options bit for a while to allow a user to get the old behaviour back. I am curious to know what real-world problem you are trying to solve with this patch. I assume there's a client which only handles |
It would be the professional way to introduce breaking changes with a new major version.
None, just a side finding. A decade or two on the job, does teach to address technical debt immediately. |
We don't tend to use the major-version-breaks-things semantics suggested by a lot of people. Instead code tends to get made optionally-compilable. We send a warning message for a while (yes, the timekeeping on this is that exact...), then we compile the code out by default, then we remove the code. All in "approximate time". I've started to leave comments around this code indicating when things should happen, but typically these steps occur on minor version changes - which are supposed to be every 6 months or so.
OK, so no immediate concern here. Expiring technical debt is rather easier when you control all of the moving parts :-) I'll put a message out on the ardupilot-gcs mailing list to try to prompt people to ensure they support https://github.com/ardupilot/ardupilot/blob/master/libraries/GCS_MAVLink/GCS_config.h#L107 shows where we are warning on the other side - so if a GCS is requesting items using I think we will probably need to do some form of probing for support here. So request an item using That's probably stashing away the currently-sending-type ( Did you want to do that work (or something better!), or shall I? |
I will add once I'm done with the 900M ELRS Mavlink Issue. |
0345c0b
to
b5ddb99
Compare
Use MISSION_REQUEST_INT to request mission items from ground control station. Fallback to the deprecated MISSION_REQUEST after the first timeout and if the ground control station then answers, send a text warning to be displayed in the ground station.
Some capabilities are available but not advertised. FIXME: MAV_PROTOCOL_CAPABILITY_MISSION_FLOAT is deprecated!
b5ddb99
to
eaee905
Compare
Well, tested, works but produces false positive warnings on high latency links. I'm against this workaround and support old stuff forever approach. I prefer the clean cut method. Drop support at next major version. There is also an issue with the advertised capabilities and the mavlink fork of ardupilot not being up to date. -2 |
Minor Protocol Issue; Finding during another investigation mavlink/qgroundcontrol#12184
MISSION_REQUEST is deprecated since 2020, replaced with MISSION_REQUEST_INT, but ardupilot still uses it to request mission items from GCS.
https://mavlink.io/en/services/mission.html#uploading_mission